package com.automannn.atm_back.modules.system.service;

import com.automannn.atm_back.common.system.vo.DictQuery;
import com.automannn.atm_back.common.system.vo.DictVO;
import com.automannn.atm_back.modules.system.entity.SysDict;
import com.automannn.atm_back.modules.system.entity.SysDictItem;
import com.automannn.atm_back.modules.system.model.TreeSelectModel;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 字典表 服务类
 * @author chenkh
 * @time 2020/6/26 21:57
 */
public interface ISysDictService extends IService<SysDict> {
     List<DictVO> queryDictItemsByCode(String code);

     Map<String,List<DictVO>> queryAllDictItems();

    @Deprecated
    List<DictVO> queryTableDictItemsByCode(String table, String text, String code);

    @Deprecated
     List<DictVO> queryTableDictItemsByCodeAndFilter(String table, String text, String code, String filterSql);

     String queryDictTextByKey(String code, String key);

    @Deprecated
    String queryTableDictTextByKey(String table, String text, String code, String key);

    @Deprecated
    List<String> queryTableDictByKeys(String table, String text, String code, String[] keyArray);

    /**
     * 根据字典类型删除关联表中其对应的数据
     *
     * @param sysDict
     * @return
     */
    boolean deleteByDictId(SysDict sysDict);

    /**
     * 添加一对多
     */
     Integer saveMain(SysDict sysDict, List<SysDictItem> sysDictItemList);

    /**
     * 查询所有部门 作为字典信息 id -->value,departName -->text
     * @return
     */
     List<DictVO> queryAllDepartBackDictVO();

    /**
     * 查询所有用户  作为字典信息 username -->value,realname -->text
     * @return
     */
    public List<DictVO> queryAllUserBackDictVO();

    /**
     * 通过关键字查询字典表
     * @param table
     * @param text
     * @param code
     * @param keyword
     * @return
     */
    @Deprecated
     List<DictVO> queryTableDictItems(String table, String text, String code,String keyword);

    /**
     * 根据表名、显示字段名、存储字段名 查询树
     * @param table
     * @param text
     * @param code
     * @param pidField
     * @param pid
     * @param hasChildField
     * @return
     */
    @Deprecated
    List<TreeSelectModel> queryTreeList(Map<String, String> query, String table, String text, String code, String pidField, String pid, String hasChildField);

    /**
     * 真实删除
     * @param id
     */
     void deleteOneDictPhysically(String id);

    /**
     * 修改delFlag
     * @param delFlag
     * @param id
     */
     void updateDictDelFlag(int delFlag,String id);

    /**
     * 查询被逻辑删除的数据
     * @return
     */
     List<SysDict> queryDeleteList();

    /**
     * 分页查询
     * @param query
     * @param pageSize
     * @param pageNo
     * @return
     */
    @Deprecated
    public List<DictVO> queryDictTablePageList(DictQuery query, int pageSize, int pageNo);

}
